from flask import Flask,render_template,request
import datetime

app1 = Flask(__name__)


@app1.route('/')
def hello_world():
    return 'hello world'


@app1.route('/index')   #更改访问路径为/index
def welcome():          #更改函数名
    return '你好，2021'   #更改函数返回值内容


@app1.route('/user/<name>')    #更改访问路径为/user/<name>，可通过<xx>，获取用户的参数xx，此处为字符串参数
def welcome1(name):     #将用户参数传递至函数
    return 'hello %s'%name   #将用户参数返回


@app1.route('/user/<int:id>')    #更改访问路径为/user/<int:id>，可通过<xx>，获取用户的参数xx,此处为int型，需按照<int:yy>格式
def welcome2(id):     #将用户参数传递至函数
    return 'hello, 学号为%d的同学'%id  #将用户参数返回


@app1.route('/user/<int:id>/<name>/<float:goal>')    #更改访问路径为/user/<int:id>/<float:bat>，可通过<xx>，获取用户的参数xx,此处为int型，需按照<int:yy>格式,<float:zz>
def welcome3(id,name,goal):     #将用户参数传递至函数
    return 'hello, 学号为%d的同学%s,你的成绩是%f'%(id,name,goal)  #将用户参数返回

#Attention 路由路径不能重复，用户通过唯一路径访问特定的函数


#返回给用户渲染后的网页文件
@app1.route('/a')
def index1():
    return render_template('index.html')   #返回给用户渲染后的网页文件


#向页面传递变量
@app1.route('/b')
def index2():
    time = datetime.date.today()      #普通变量
    name = ["张三","王五","李四"]        #列表变量
    task = {"任务":"打扫卫生","时间":"3小时"}    #字典变量
    return render_template('index2.html', var = time, name1 = name, task = task)   #将变量var,name1,task传递给页面

#表单提交
@app1.route('/test')    #访问文件路径test/register
def register():
    return render_template('test/register.html')   #template下的文件结构

#表单接受端，路由需指定methods为POST
@app1.route('/result', methods=['POST', 'GET'])    #methods默认为GET，需指定POST
def result1():
    if request.method == 'POST':
        result = request.form     #将register.html中的内容作为字典传递给result
        return render_template('test/result.html',result2=result)   #template下的文件结构，返回渲染后的网页

if __name__ == '__main__':
    app1.run()
